home *** CD-ROM | disk | FTP | other *** search
/ The Psychotron / The Psychotron.iso / psychorm / psychotn / psycho.mst < prev    next >
Encoding:
Text File  |  1994-05-09  |  6.7 KB  |  229 lines

  1. '**************************************************************************
  2. '*PROGRAM:   Setup Program (PSYCHOTRON)
  3. '*DATE:         4-7-94
  4. '*PROGRAMMER Asad Khan
  5. '**************************************************************************
  6.  
  7. '$DEFINE DEBUG  ''Define for script development/debugging
  8.  
  9. '$INCLUDE 'setupapi.inc'
  10. '$INCLUDE 'msdetect.inc'
  11.  
  12. ''Dialog ID's
  13. CONST WELCOME       = 100
  14. CONST ASKQUIT       = 200
  15. CONST DESTPATH      = 300
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST OPTIONS       = 800
  20. CONST APPHELP       = 900
  21. CONST BADPATH       = 6400
  22. CONST CHECKDIR        = 9030
  23.  
  24. ''Bitmap ID
  25. CONST LOGO = 1
  26.  
  27. GLOBAL DEST$        ''Default destination directory.
  28. GLOBAL OPTCUR$      ''Option selection from option dialog.
  29. GLOBAL szInf$
  30.  
  31. DECLARE SUB Install
  32. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  33.  
  34.  
  35. INIT:
  36.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  37.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  38.  
  39.     SetBitmap CUIDLL$, LOGO
  40.     SetTitle "Psychotron Setup"
  41.  
  42.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  43.     IF szInf$ = "" THEN
  44.         szInf$ = GetSymbolValue("STF_CWDDIR") + "psych.inf"
  45.     END IF
  46.     ReadInfFile szInf$
  47.  
  48.     OPTCUR$ = "1"
  49.     DEST$ = "C:\PSYCHOTN"
  50.  
  51. '$IFDEF DEBUG
  52.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  53.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  54.     IF IsDriveValid(WinDrive$) = 0 THEN
  55.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  56.         GOTO QUIT
  57.     END IF
  58. '$ENDIF ''DEBUG
  59.  
  60.  
  61. WELCOME:
  62.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  63.     IF sz$ = "CONTINUE" THEN
  64.         UIPop 1
  65.     ELSE
  66.         GOSUB ASKQUIT
  67.         GOTO WELCOME
  68.     END IF
  69.  
  70. GETPATH:
  71.     SetSymbolValue "EditTextIn", DEST$
  72.     SetSymbolValue "EditFocus", "END"
  73. GETPATHL1:
  74.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  75.     DEST$ = GetSymbolValue("EditTextOut")
  76.  
  77.     IF sz$ = "CONTINUE" THEN
  78.         IF IsDirWritable(DEST$) = 0 THEN
  79.             GOSUB BADPATH
  80.             GOTO GETPATHL1
  81.         END IF
  82.         UIPop 1
  83.     ELSEIF sz$ = "REACTIVATE" THEN
  84.         GOTO GETPATHL1
  85.     ELSE
  86.         GOSUB ASKQUIT
  87.         GOTO GETPATH
  88.     END IF
  89.  
  90. DIRINFO:
  91.     IF DoesDirExist(DEST$) = 1 THEN
  92. CHECKDIRMAIN:
  93.       SetSymbolValue "EditTextIn", DEST$
  94.       SetSymbolValue "EditFocus", "END"
  95. CHECKDIR:
  96.       sz$ = UIStartDlg(CUIDLL$, CHECKDIR, "FEditDlgProc", APPHELP, HELPPROC$)
  97.       IF sz$ = "CONTINUE" THEN
  98.         UIPop 1
  99.       ELSEIF sz$ = "REACTIVATE" THEN
  100.          GOTO CHECKDIR
  101.       ELSEIF sz$ = "BACK" THEN
  102.          UIPop 1
  103.          GOTO GETPATHL1
  104.       ELSE
  105.          GOSUB ASKQUIT
  106.          GOTO CHECKDIRMAIN
  107.       END IF  
  108.     END IF
  109.  
  110.     drive$ = MID$(DEST$, 1, 1)
  111.     free& = GetFreeSpaceForDrive(drive$)
  112.     IF (free& < 5000000) THEN
  113.       i% = DoMsgBox("Insufficient Hard Disk space. This Software requires atleast 5 MegaBytes of free Disk Space.", "Psychotron Setup", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  114.       dlg% = EXITFAILURE
  115.       GOTO QUITL1
  116.     END IF  
  117.  
  118.     Install
  119.     
  120.  
  121. QUIT:
  122.     ON ERROR GOTO ERRQUIT
  123.  
  124.     IF ERR = 0 THEN
  125.         dlg% = EXITSUCCESS
  126.     ELSEIF ERR = STFQUIT THEN
  127.         dlg% = EXITQUIT
  128.     ELSE
  129.         dlg% = EXITFAILURE
  130.     END IF
  131. QUITL1:
  132.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  133.     IF sz$ = "REACTIVATE" THEN
  134.         GOTO QUITL1
  135.     END IF
  136.     UIPop 1
  137.     END
  138.  
  139. ERRQUIT:
  140.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  141.     END
  142.  
  143.  
  144. BADPATH:
  145.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  146.     IF sz$ = "REACTIVATE" THEN
  147.         GOTO BADPATH
  148.     END IF
  149.     UIPop 1
  150.     RETURN
  151.  
  152. ASKQUIT:
  153.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  154.  
  155.     IF sz$ = "EXIT" THEN
  156.         UIPopAll
  157.         ERROR STFQUIT
  158.     ELSEIF sz$ = "REACTIVATE" THEN
  159.         GOTO ASKQUIT
  160.     ELSE
  161.         UIPop 1
  162.     END IF
  163.     RETURN
  164.  
  165. '**
  166. '** Purpose:
  167. '**     Builds the copy list and performs all installation operations.
  168. '** Arguments:
  169. '**     none.
  170. '** Returns:
  171. '**     none.
  172. '*************************************************************************
  173. SUB Install STATIC
  174.  
  175.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  176.     CreateDir DEST$, cmoNone
  177.     WinDir$ = GetWindowsDir()
  178.     CreateDir MakePath(DEST$, "tb") , cmoNone
  179.  
  180.     AddSectionFilesToCopyList "TBOOK", SrcDir$, DEST$ + "\tb"
  181.     AddSectionFilesToCopyList "INI", SrcDir$, WinDir$
  182.     AddSectionFilesToCopyList "WAVE", SrcDir$, DEST$
  183.     AddSectionFilesToCopyList "MIDI", SrcDir$, DEST$
  184.     CopyFilesInCopyList
  185.  
  186.     ini$ = MakePath(WinDir$, "Psychorm.ini")
  187.     OPTCUR$ = MID$(SrcDir$, 1, 1) + ":\"
  188.     CreateIniKeyValue ini$, "STARTUP", "HOMEPATH", DEST$, cmoOverwrite
  189.     CreateIniKeyValue ini$, "STARTUP", "ROMPATH", OPTCUR$ + "PSYCHORM", cmoOverwrite
  190.     CreateIniKeyValue ini$, "STARTUP", "SCRPATH", OPTCUR$ + "PSYCHORM", cmoOverwrite
  191.     CreateIniKeyValue ini$, "STARTUP", "ANIPATH", OPTCUR$ + "PSYCHORM", cmoOverwrite
  192.     CreateIniKeyValue ini$, "STARTUP", "INFOPATH", OPTCUR$ + "PSYCHORM", cmoOverwrite
  193.     CreateIniKeyValue ini$, "STARTUP", "SYSBOOK1", OPTCUR$ + "PSYCHORM\BOOKS\TBKMM.SBK", cmoOverwrite
  194.     CreateIniKeyValue ini$, "STARTUP", "SYSBOOK2", OPTCUR$ + "PSYCHORM\BOOKS\MMGAME.TBK", cmoOverwrite
  195.     
  196.     CreateIniKeyValue "win.ini", "Extensions", "tbk", "tbook.exe ^.tbk" , cmoOverwrite
  197.  
  198.     CreateProgmanGroup "Psychotron", "", cmoNone
  199.     ShowProgmanGroup  "Psychotron", 1, cmoNone
  200.     s$ = GetPfImageName("PSYC-INFO", ";tbk", szInf$)
  201.     OPTCUR$ = MID$(SrcDir$, 1, 1) + ":\" + s$
  202.     CreateProgmanItem "Psychotron", "Psychotron", MakePath(DEST$, "tb\tbook.exe ")+OPTCUR$, MakePath(DEST$, "psycho.ico") + ",0,1,1," + DEST$, cmoOverwrite
  203.     CreateProgmanItem "Psychotron", "readme.txt", "notepad.exe " + MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  204.  
  205. END SUB
  206.  
  207. '**
  208. '** Purpose:
  209. '**     Appends a file name to the end of a directory path,
  210. '**     inserting a backslash character as needed.
  211. '** Arguments:
  212. '**     szDir$  - full directory path (with optional ending "\")
  213. '**     szFile$ - filename to append to directory
  214. '** Returns:
  215. '**     Resulting fully qualified path name.
  216. '*************************************************************************
  217. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  218.     IF szDir$ = "" THEN
  219.         MakePath = szFile$
  220.     ELSEIF szFile$ = "" THEN
  221.         MakePath = szDir$
  222.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  223.         MakePath = szDir$ + szFile$
  224.     ELSE
  225.         MakePath = szDir$ + "\" + szFile$
  226.     END IF
  227. END FUNCTION
  228.  
  229.